home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 11 - 1995 / 11.02 Feb 95 / Yenta / Erics C++ Libraries / Appletalk Classes / CPPZone411.h < prev   
Encoding:
C/C++ Source or Header  |  1996-04-04  |  1.8 KB  |  82 lines  |  [TEXT/KAHL]

  1. /********************************************************* DEFINITION
  2.     DATE:    9/17/93
  3.     AUTHOR: Eric R. Rosé
  4.     
  5.     CLASS:  CPPZone411
  6.     
  7.     SUPERCLASS: CPPPeriodicTask
  8.     
  9.         This class lets you look up zones on the network using
  10.         either phase 1 or phase 2 appletalk
  11.     
  12. ********************************************************************/
  13.  
  14. #pragma once
  15.  
  16. #include <CPPPeriodicTask.h>
  17. #include <Appletalk.h>
  18.  
  19. typedef        AddrBlock    *AddrBlockPtr;
  20. typedef        XCallParam    *XCallPtr;
  21.  
  22. class CPPStringList;
  23. class CPPTaskManager;
  24. class CPPMaBell;
  25. class CPPStringList;
  26.  
  27. class CPPZone411 : public CPPPeriodicTask {
  28.  
  29. public:
  30.                     CPPZone411 (CPPTaskManager *TaskManager,
  31.                                 CPPMaBell *MaBell, long minPeriod = 120, 
  32.                                 Boolean deleteWhenDone = TRUE);
  33.                     ~CPPZone411 (void);
  34.     
  35.     virtual    char     *ClassName (void);
  36.  
  37.     virtual    void    DoPeriodicAction (void);
  38.     virtual void    DoCompletedAction (void);
  39.     
  40.     Boolean            NthZone (long whichItem, Boolean getCopy, StringPtr *ZoneName);
  41.     long            NumZonesFound (Boolean *isDone);
  42.     
  43.     void            StartZoneLookup (CompletionProc DoProc);
  44.     
  45.     StringPtr        GetOurZoneName (OSErr *ErrCode);
  46.     CPPStringList    *GetFoundList (void);
  47.     
  48. protected:
  49.     CPPStringList    *FoundList;
  50.  
  51. private:    
  52.     CPPMaBell        *MaBell;
  53.     AddrBlockPtr    BridgeAddress;            // address of the local network bridge
  54.     Boolean            HaveNetwork;            // TRUE if we are connected to a network
  55.     short            AtalkVersionNumber;
  56.     short            ZIPReferenceNumber;
  57.     
  58.     // used in phase 2 lookup
  59.     XCallPtr        myXPB;    
  60.                     
  61.     // used in phase 1 lookup
  62.     ATPPBPtr        myATP;                    
  63.     BDSPtr            myBDS;
  64.     short            StartFromZoneNum;
  65.     
  66.     Ptr                returnBuffer;
  67.  
  68.     StringPtr        GetZoneNamePhase1 (OSErr *ErrCode);
  69.     StringPtr        GetZoneNamePhase2 (OSErr *ErrCode);
  70.  
  71.     void            SetBridgeAddress ();
  72.  
  73.     void            ProcessZoneList (short HowManyReturned);        
  74.  
  75.     void            StartPhase2Lookup ();
  76.     void            Phase2PeriodicAction ();
  77.  
  78.     void            StartPhase1Lookup ();
  79.     void            Phase1PeriodicAction ();
  80.     
  81. };
  82.